package org.sdp.pearproject.dao.domain;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * InterfaceName: ProjectForNodeBaseExample
 * @Description:
 * @Author: SDP
 * @Date: 2022-07-21
 * @Version: 1.0
 * Table: pear_project
 * Comment:
 * 项目表
 */
public class ProjectForNodeBaseExample extends BaseExample {
    protected Integer limitClause;

    protected Integer countClause;

    protected Integer topClause;

    protected ProjectForNodeBase simple;

    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ProjectForNodeBaseExample() {
        oredCriteria = new ArrayList<>();
        simple = new ProjectForNodeBase();
    }

    public void setLimitClause(Integer limitClause) {
        this.limitClause = limitClause;
    }

    public Integer getLimitClause() {
        return limitClause;
    }

    public void setCountClause(Integer countClause) {
        this.countClause = countClause;
    }

    public Integer getCountClause() {
        return countClause;
    }

    public void setTopClause(Integer topClause) {
        this.topClause = topClause;
    }

    public Integer getTopClause() {
        return topClause;
    }

    public void setSimple(ProjectForNodeBase simple) {
        this.simple = simple;
    }

    public ProjectForNodeBase getSimple() {
        return simple;
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public static ProjectForNodeBaseExample createExample(ProjectForNodeBase request) throws Exception {
        return createExample(request, null);
    }

    public static ProjectForNodeBaseExample createExample(ProjectForNodeBase request, JSONObject options) throws Exception {
        ProjectForNodeBaseExample example = new ProjectForNodeBaseExample();
        example.setSimple(request);
        ProjectForNodeBaseExample.Criteria criteria = example.createCriteria();

        example.fixExample(ProjectForNodeBase.class, CriteriaString.class, criteria, options);

        if (options != null) {
            String orderBy = "";
            if (options.containsKey("order_by")) {
                orderBy = setCriteriaOrderBy(options.getJSONArray("order_by"), example);
                if (orderBy.length() > 0) {
                    example.setOrderByClause(orderBy);
                }
            }
        }

        return example;
    }

    private static String setCriteriaOrderBy(JSONArray jsonArray, ProjectForNodeBaseExample example) throws Exception {
        List<Object> request = Criterion.toList(jsonArray, CriteriaString.class);
        StringBuilder sb = new StringBuilder();
        int count = 0;
        for(int i = 0; i < request.size(); i++) {
            Object criteriaOrderByObj  = request.get(i);
            CriteriaString criteriaOrderBy = (CriteriaString)criteriaOrderByObj;
            int subCount = 0;

            subCount += appendCriteriaOrderByItem(sb, "id", criteriaOrderBy.getId());
            subCount += appendCriteriaOrderByItem(sb, "node", criteriaOrderBy.getNode());
            subCount += appendCriteriaOrderByItem(sb, "title", criteriaOrderBy.getTitle());
            subCount += appendCriteriaOrderByItem(sb, "is_menu", criteriaOrderBy.getIsMenu());
            subCount += appendCriteriaOrderByItem(sb, "is_auth", criteriaOrderBy.getIsAuth());
            subCount += appendCriteriaOrderByItem(sb, "is_login", criteriaOrderBy.getIsLogin());
            subCount += appendCriteriaOrderByItem(sb, "create_at", criteriaOrderBy.getCreateAt());
            subCount += appendCriteriaOrderByItem(sb, "pnode", criteriaOrderBy.getPnode());
            subCount += appendCriteriaOrderByItem(sb, "`path`", criteriaOrderBy.getPath());
            subCount += appendCriteriaOrderByItem(sb, "spl", criteriaOrderBy.getSpl());
            subCount += appendCriteriaOrderByItem(sb, "spt", criteriaOrderBy.getSpt());
            if (subCount > 1) {
                throw new Exception("order by数组元素对象属性多于1个(ProjectForNodeBaseExample):"+count+","+JSON.toJSONString(jsonArray.get(i)));
            }
            if (subCount == 0 && !"{}".equals(JSON.toJSONString(jsonArray.get(i)))) {
                throw new Exception("存在非法order by 字段(ProjectForNodeBaseExample):"+count+","+JSON.toJSONString(jsonArray.get(i)));
            }
            count++;
        }
        if (sb.length() == 0) {
            appendCriteriaOrderByItem(sb, "1", "");
        }

        return sb.toString();
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andNodeIsNull() {
            addCriterion("node is null");
            return (Criteria) this;
        }

        public Criteria andNodeIsNotNull() {
            addCriterion("node is not null");
            return (Criteria) this;
        }

        public Criteria andNodeEqualTo(String value) {
            addCriterion("node =", value, "node");
            return (Criteria) this;
        }

        public Criteria andNodeNotEqualTo(String value) {
            addCriterion("node <>", value, "node");
            return (Criteria) this;
        }

        public Criteria andNodeGreaterThan(String value) {
            addCriterion("node >", value, "node");
            return (Criteria) this;
        }

        public Criteria andNodeGreaterThanOrEqualTo(String value) {
            addCriterion("node >=", value, "node");
            return (Criteria) this;
        }

        public Criteria andNodeLessThan(String value) {
            addCriterion("node <", value, "node");
            return (Criteria) this;
        }

        public Criteria andNodeLessThanOrEqualTo(String value) {
            addCriterion("node <=", value, "node");
            return (Criteria) this;
        }

        public Criteria andNodeRegexp(String value) {
            addCriterion("node regexp", value, "node");
            return (Criteria) this;
        }

        public Criteria andNodeLike(String value) {
            addCriterion("node like", value, "node");
            return (Criteria) this;
        }

        public Criteria andNodeNotLike(String value) {
            addCriterion("node not like", value, "node");
            return (Criteria) this;
        }

        public Criteria andNodeIn(List<String> values) {
            addCriterion("node in", values, "node");
            return (Criteria) this;
        }

        public Criteria andNodeNotIn(List<String> values) {
            addCriterion("node not in", values, "node");
            return (Criteria) this;
        }

        public Criteria andNodeBetween(String value1, String value2) {
            addCriterion("node between", value1, value2, "node");
            return (Criteria) this;
        }

        public Criteria andNodeNotBetween(String value1, String value2) {
            addCriterion("node not between", value1, value2, "node");
            return (Criteria) this;
        }

        public Criteria andTitleIsNull() {
            addCriterion("title is null");
            return (Criteria) this;
        }

        public Criteria andTitleIsNotNull() {
            addCriterion("title is not null");
            return (Criteria) this;
        }

        public Criteria andTitleEqualTo(String value) {
            addCriterion("title =", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotEqualTo(String value) {
            addCriterion("title <>", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleGreaterThan(String value) {
            addCriterion("title >", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleGreaterThanOrEqualTo(String value) {
            addCriterion("title >=", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleLessThan(String value) {
            addCriterion("title <", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleLessThanOrEqualTo(String value) {
            addCriterion("title <=", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleRegexp(String value) {
            addCriterion("title regexp", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleLike(String value) {
            addCriterion("title like", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotLike(String value) {
            addCriterion("title not like", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleIn(List<String> values) {
            addCriterion("title in", values, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotIn(List<String> values) {
            addCriterion("title not in", values, "title");
            return (Criteria) this;
        }

        public Criteria andTitleBetween(String value1, String value2) {
            addCriterion("title between", value1, value2, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotBetween(String value1, String value2) {
            addCriterion("title not between", value1, value2, "title");
            return (Criteria) this;
        }

        public Criteria andIsMenuIsNull() {
            addCriterion("is_menu is null");
            return (Criteria) this;
        }

        public Criteria andIsMenuIsNotNull() {
            addCriterion("is_menu is not null");
            return (Criteria) this;
        }

        public Criteria andIsMenuEqualTo(Byte value) {
            addCriterion("is_menu =", value, "isMenu");
            return (Criteria) this;
        }

        public Criteria andIsMenuNotEqualTo(Byte value) {
            addCriterion("is_menu <>", value, "isMenu");
            return (Criteria) this;
        }

        public Criteria andIsMenuGreaterThan(Byte value) {
            addCriterion("is_menu >", value, "isMenu");
            return (Criteria) this;
        }

        public Criteria andIsMenuGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_menu >=", value, "isMenu");
            return (Criteria) this;
        }

        public Criteria andIsMenuLessThan(Byte value) {
            addCriterion("is_menu <", value, "isMenu");
            return (Criteria) this;
        }

        public Criteria andIsMenuLessThanOrEqualTo(Byte value) {
            addCriterion("is_menu <=", value, "isMenu");
            return (Criteria) this;
        }

        public Criteria andIsMenuIn(List<Byte> values) {
            addCriterion("is_menu in", values, "isMenu");
            return (Criteria) this;
        }

        public Criteria andIsMenuNotIn(List<Byte> values) {
            addCriterion("is_menu not in", values, "isMenu");
            return (Criteria) this;
        }

        public Criteria andIsMenuBetween(Byte value1, Byte value2) {
            addCriterion("is_menu between", value1, value2, "isMenu");
            return (Criteria) this;
        }

        public Criteria andIsMenuNotBetween(Byte value1, Byte value2) {
            addCriterion("is_menu not between", value1, value2, "isMenu");
            return (Criteria) this;
        }

        public Criteria andIsAuthIsNull() {
            addCriterion("is_auth is null");
            return (Criteria) this;
        }

        public Criteria andIsAuthIsNotNull() {
            addCriterion("is_auth is not null");
            return (Criteria) this;
        }

        public Criteria andIsAuthEqualTo(Byte value) {
            addCriterion("is_auth =", value, "isAuth");
            return (Criteria) this;
        }

        public Criteria andIsAuthNotEqualTo(Byte value) {
            addCriterion("is_auth <>", value, "isAuth");
            return (Criteria) this;
        }

        public Criteria andIsAuthGreaterThan(Byte value) {
            addCriterion("is_auth >", value, "isAuth");
            return (Criteria) this;
        }

        public Criteria andIsAuthGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_auth >=", value, "isAuth");
            return (Criteria) this;
        }

        public Criteria andIsAuthLessThan(Byte value) {
            addCriterion("is_auth <", value, "isAuth");
            return (Criteria) this;
        }

        public Criteria andIsAuthLessThanOrEqualTo(Byte value) {
            addCriterion("is_auth <=", value, "isAuth");
            return (Criteria) this;
        }

        public Criteria andIsAuthIn(List<Byte> values) {
            addCriterion("is_auth in", values, "isAuth");
            return (Criteria) this;
        }

        public Criteria andIsAuthNotIn(List<Byte> values) {
            addCriterion("is_auth not in", values, "isAuth");
            return (Criteria) this;
        }

        public Criteria andIsAuthBetween(Byte value1, Byte value2) {
            addCriterion("is_auth between", value1, value2, "isAuth");
            return (Criteria) this;
        }

        public Criteria andIsAuthNotBetween(Byte value1, Byte value2) {
            addCriterion("is_auth not between", value1, value2, "isAuth");
            return (Criteria) this;
        }

        public Criteria andIsLoginIsNull() {
            addCriterion("is_login is null");
            return (Criteria) this;
        }

        public Criteria andIsLoginIsNotNull() {
            addCriterion("is_login is not null");
            return (Criteria) this;
        }

        public Criteria andIsLoginEqualTo(Byte value) {
            addCriterion("is_login =", value, "isLogin");
            return (Criteria) this;
        }

        public Criteria andIsLoginNotEqualTo(Byte value) {
            addCriterion("is_login <>", value, "isLogin");
            return (Criteria) this;
        }

        public Criteria andIsLoginGreaterThan(Byte value) {
            addCriterion("is_login >", value, "isLogin");
            return (Criteria) this;
        }

        public Criteria andIsLoginGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_login >=", value, "isLogin");
            return (Criteria) this;
        }

        public Criteria andIsLoginLessThan(Byte value) {
            addCriterion("is_login <", value, "isLogin");
            return (Criteria) this;
        }

        public Criteria andIsLoginLessThanOrEqualTo(Byte value) {
            addCriterion("is_login <=", value, "isLogin");
            return (Criteria) this;
        }

        public Criteria andIsLoginIn(List<Byte> values) {
            addCriterion("is_login in", values, "isLogin");
            return (Criteria) this;
        }

        public Criteria andIsLoginNotIn(List<Byte> values) {
            addCriterion("is_login not in", values, "isLogin");
            return (Criteria) this;
        }

        public Criteria andIsLoginBetween(Byte value1, Byte value2) {
            addCriterion("is_login between", value1, value2, "isLogin");
            return (Criteria) this;
        }

        public Criteria andIsLoginNotBetween(Byte value1, Byte value2) {
            addCriterion("is_login not between", value1, value2, "isLogin");
            return (Criteria) this;
        }

        public Criteria andCreateAtIsNull() {
            addCriterion("create_at is null");
            return (Criteria) this;
        }

        public Criteria andCreateAtIsNotNull() {
            addCriterion("create_at is not null");
            return (Criteria) this;
        }

        public Criteria andCreateAtEqualTo(String value) {
            addCriterion("create_at =", value, "createAt");
            return (Criteria) this;
        }

        public Criteria andCreateAtNotEqualTo(String value) {
            addCriterion("create_at <>", value, "createAt");
            return (Criteria) this;
        }

        public Criteria andCreateAtGreaterThan(String value) {
            addCriterion("create_at >", value, "createAt");
            return (Criteria) this;
        }

        public Criteria andCreateAtGreaterThanOrEqualTo(String value) {
            addCriterion("create_at >=", value, "createAt");
            return (Criteria) this;
        }

        public Criteria andCreateAtLessThan(String value) {
            addCriterion("create_at <", value, "createAt");
            return (Criteria) this;
        }

        public Criteria andCreateAtLessThanOrEqualTo(String value) {
            addCriterion("create_at <=", value, "createAt");
            return (Criteria) this;
        }

        public Criteria andCreateAtRegexp(String value) {
            addCriterion("create_at regexp", value, "createAt");
            return (Criteria) this;
        }

        public Criteria andCreateAtLike(String value) {
            addCriterion("create_at like", value, "createAt");
            return (Criteria) this;
        }

        public Criteria andCreateAtNotLike(String value) {
            addCriterion("create_at not like", value, "createAt");
            return (Criteria) this;
        }

        public Criteria andCreateAtIn(List<String> values) {
            addCriterion("create_at in", values, "createAt");
            return (Criteria) this;
        }

        public Criteria andCreateAtNotIn(List<String> values) {
            addCriterion("create_at not in", values, "createAt");
            return (Criteria) this;
        }

        public Criteria andCreateAtBetween(String value1, String value2) {
            addCriterion("create_at between", value1, value2, "createAt");
            return (Criteria) this;
        }

        public Criteria andCreateAtNotBetween(String value1, String value2) {
            addCriterion("create_at not between", value1, value2, "createAt");
            return (Criteria) this;
        }

        public Criteria andPnodeIsNull() {
            addCriterion("pnode is null");
            return (Criteria) this;
        }

        public Criteria andPnodeIsNotNull() {
            addCriterion("pnode is not null");
            return (Criteria) this;
        }

        public Criteria andPnodeEqualTo(String value) {
            addCriterion("pnode =", value, "pnode");
            return (Criteria) this;
        }

        public Criteria andPnodeNotEqualTo(String value) {
            addCriterion("pnode <>", value, "pnode");
            return (Criteria) this;
        }

        public Criteria andPnodeGreaterThan(String value) {
            addCriterion("pnode >", value, "pnode");
            return (Criteria) this;
        }

        public Criteria andPnodeGreaterThanOrEqualTo(String value) {
            addCriterion("pnode >=", value, "pnode");
            return (Criteria) this;
        }

        public Criteria andPnodeLessThan(String value) {
            addCriterion("pnode <", value, "pnode");
            return (Criteria) this;
        }

        public Criteria andPnodeLessThanOrEqualTo(String value) {
            addCriterion("pnode <=", value, "pnode");
            return (Criteria) this;
        }

        public Criteria andPnodeRegexp(String value) {
            addCriterion("pnode regexp", value, "pnode");
            return (Criteria) this;
        }

        public Criteria andPnodeLike(String value) {
            addCriterion("pnode like", value, "pnode");
            return (Criteria) this;
        }

        public Criteria andPnodeNotLike(String value) {
            addCriterion("pnode not like", value, "pnode");
            return (Criteria) this;
        }

        public Criteria andPnodeIn(List<String> values) {
            addCriterion("pnode in", values, "pnode");
            return (Criteria) this;
        }

        public Criteria andPnodeNotIn(List<String> values) {
            addCriterion("pnode not in", values, "pnode");
            return (Criteria) this;
        }

        public Criteria andPnodeBetween(String value1, String value2) {
            addCriterion("pnode between", value1, value2, "pnode");
            return (Criteria) this;
        }

        public Criteria andPnodeNotBetween(String value1, String value2) {
            addCriterion("pnode not between", value1, value2, "pnode");
            return (Criteria) this;
        }

        public Criteria andPathIsNull() {
            addCriterion("`path` is null");
            return (Criteria) this;
        }

        public Criteria andPathIsNotNull() {
            addCriterion("`path` is not null");
            return (Criteria) this;
        }

        public Criteria andPathEqualTo(String value) {
            addCriterion("`path` =", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathNotEqualTo(String value) {
            addCriterion("`path` <>", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathGreaterThan(String value) {
            addCriterion("`path` >", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathGreaterThanOrEqualTo(String value) {
            addCriterion("`path` >=", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathLessThan(String value) {
            addCriterion("`path` <", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathLessThanOrEqualTo(String value) {
            addCriterion("`path` <=", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathRegexp(String value) {
            addCriterion("`path` regexp", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathLike(String value) {
            addCriterion("`path` like", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathNotLike(String value) {
            addCriterion("`path` not like", value, "path");
            return (Criteria) this;
        }

        public Criteria andPathIn(List<String> values) {
            addCriterion("`path` in", values, "path");
            return (Criteria) this;
        }

        public Criteria andPathNotIn(List<String> values) {
            addCriterion("`path` not in", values, "path");
            return (Criteria) this;
        }

        public Criteria andPathBetween(String value1, String value2) {
            addCriterion("`path` between", value1, value2, "path");
            return (Criteria) this;
        }

        public Criteria andPathNotBetween(String value1, String value2) {
            addCriterion("`path` not between", value1, value2, "path");
            return (Criteria) this;
        }

        public Criteria andSplIsNull() {
            addCriterion("spl is null");
            return (Criteria) this;
        }

        public Criteria andSplIsNotNull() {
            addCriterion("spl is not null");
            return (Criteria) this;
        }

        public Criteria andSplEqualTo(String value) {
            addCriterion("spl =", value, "spl");
            return (Criteria) this;
        }

        public Criteria andSplNotEqualTo(String value) {
            addCriterion("spl <>", value, "spl");
            return (Criteria) this;
        }

        public Criteria andSplGreaterThan(String value) {
            addCriterion("spl >", value, "spl");
            return (Criteria) this;
        }

        public Criteria andSplGreaterThanOrEqualTo(String value) {
            addCriterion("spl >=", value, "spl");
            return (Criteria) this;
        }

        public Criteria andSplLessThan(String value) {
            addCriterion("spl <", value, "spl");
            return (Criteria) this;
        }

        public Criteria andSplLessThanOrEqualTo(String value) {
            addCriterion("spl <=", value, "spl");
            return (Criteria) this;
        }

        public Criteria andSplRegexp(String value) {
            addCriterion("spl regexp", value, "spl");
            return (Criteria) this;
        }

        public Criteria andSplLike(String value) {
            addCriterion("spl like", value, "spl");
            return (Criteria) this;
        }

        public Criteria andSplNotLike(String value) {
            addCriterion("spl not like", value, "spl");
            return (Criteria) this;
        }

        public Criteria andSplIn(List<String> values) {
            addCriterion("spl in", values, "spl");
            return (Criteria) this;
        }

        public Criteria andSplNotIn(List<String> values) {
            addCriterion("spl not in", values, "spl");
            return (Criteria) this;
        }

        public Criteria andSplBetween(String value1, String value2) {
            addCriterion("spl between", value1, value2, "spl");
            return (Criteria) this;
        }

        public Criteria andSplNotBetween(String value1, String value2) {
            addCriterion("spl not between", value1, value2, "spl");
            return (Criteria) this;
        }

        public Criteria andSptIsNull() {
            addCriterion("spt is null");
            return (Criteria) this;
        }

        public Criteria andSptIsNotNull() {
            addCriterion("spt is not null");
            return (Criteria) this;
        }

        public Criteria andSptEqualTo(Integer value) {
            addCriterion("spt =", value, "spt");
            return (Criteria) this;
        }

        public Criteria andSptNotEqualTo(Integer value) {
            addCriterion("spt <>", value, "spt");
            return (Criteria) this;
        }

        public Criteria andSptGreaterThan(Integer value) {
            addCriterion("spt >", value, "spt");
            return (Criteria) this;
        }

        public Criteria andSptGreaterThanOrEqualTo(Integer value) {
            addCriterion("spt >=", value, "spt");
            return (Criteria) this;
        }

        public Criteria andSptLessThan(Integer value) {
            addCriterion("spt <", value, "spt");
            return (Criteria) this;
        }

        public Criteria andSptLessThanOrEqualTo(Integer value) {
            addCriterion("spt <=", value, "spt");
            return (Criteria) this;
        }

        public Criteria andSptIn(List<Integer> values) {
            addCriterion("spt in", values, "spt");
            return (Criteria) this;
        }

        public Criteria andSptNotIn(List<Integer> values) {
            addCriterion("spt not in", values, "spt");
            return (Criteria) this;
        }

        public Criteria andSptBetween(Integer value1, Integer value2) {
            addCriterion("spt between", value1, value2, "spt");
            return (Criteria) this;
        }

        public Criteria andSptNotBetween(Integer value1, Integer value2) {
            addCriterion("spt not between", value1, value2, "spt");
            return (Criteria) this;
        }

    }

    public static class CriteriaString {
        @JsonProperty("id")
        @JSONField(name = "id")
        private String id;

        public String getId() {
            return id;
        }
        
        public void setId(String _v) {
            id = _v;
        }

        @JsonProperty("node")
        @JSONField(name = "node")
        private String node;

        public String getNode() {
            return node;
        }
        
        public void setNode(String _v) {
            node = _v;
        }

        @JsonProperty("title")
        @JSONField(name = "title")
        private String title;

        public String getTitle() {
            return title;
        }
        
        public void setTitle(String _v) {
            title = _v;
        }

        @JsonProperty("is_menu")
        @JSONField(name = "is_menu")
        private String isMenu;

        public String getIsMenu() {
            return isMenu;
        }
        
        public void setIsMenu(String _v) {
            isMenu = _v;
        }

        @JsonProperty("is_auth")
        @JSONField(name = "is_auth")
        private String isAuth;

        public String getIsAuth() {
            return isAuth;
        }
        
        public void setIsAuth(String _v) {
            isAuth = _v;
        }

        @JsonProperty("is_login")
        @JSONField(name = "is_login")
        private String isLogin;

        public String getIsLogin() {
            return isLogin;
        }
        
        public void setIsLogin(String _v) {
            isLogin = _v;
        }

        @JsonProperty("create_at")
        @JSONField(name = "create_at")
        private String createAt;

        public String getCreateAt() {
            return createAt;
        }
        
        public void setCreateAt(String _v) {
            createAt = _v;
        }

        @JsonProperty("pnode")
        @JSONField(name = "pnode")
        private String pnode;

        public String getPnode() {
            return pnode;
        }
        
        public void setPnode(String _v) {
            pnode = _v;
        }

        @JsonProperty("path")
        @JSONField(name = "path")
        private String path;

        public String getPath() {
            return path;
        }
        
        public void setPath(String _v) {
            path = _v;
        }

        @JsonProperty("spl")
        @JSONField(name = "spl")
        private String spl;

        public String getSpl() {
            return spl;
        }
        
        public void setSpl(String _v) {
            spl = _v;
        }

        @JsonProperty("spt")
        @JSONField(name = "spt")
        private String spt;

        public String getSpt() {
            return spt;
        }
        
        public void setSpt(String _v) {
            spt = _v;
        }

    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }
}
